package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.system.domain.UserRelation;
import com.ruoyi.common.core.domain.entity.SysUser;

/**
 * 用户关联Service接口
 * 
 * @author ruoyi
 */
public interface IUserRelationService 
{
    /**
     * 查询用户关联
     * 
     * @param id 用户关联主键
     * @return 用户关联
     */
    public UserRelation selectUserRelationById(Long id);

    /**
     * 查询用户关联列表
     * 
     * @param userRelation 用户关联
     * @return 用户关联集合
     */
    public List<UserRelation> selectUserRelationList(UserRelation userRelation);

    /**
     * 新增用户关联
     * 
     * @param userRelation 用户关联
     * @return 结果
     */
    public int insertUserRelation(UserRelation userRelation);

    /**
     * 修改用户关联
     * 
     * @param userRelation 用户关联
     * @return 结果
     */
    public int updateUserRelation(UserRelation userRelation);

    /**
     * 批量删除用户关联
     * 
     * @param ids 需要删除的用户关联主键集合
     * @return 结果
     */
    public int deleteUserRelationByIds(String[] ids);

    /**
     * 删除用户关联信息
     * 
     * @param id 用户关联主键
     * @return 结果
     */
    public int deleteUserRelationById(Long id);

    /**
     * 根据老人用户ID查询关联的家属列表
     * 
     * @param elderUserId 老人用户ID
     * @return 用户关联集合
     */
    public List<UserRelation> selectUserRelationByElderUserId(Long elderUserId);

    /**
     * 根据家属用户ID查询关联的老人列表
     * 
     * @param familyUserId 家属用户ID
     * @return 用户关联集合
     */
    public List<UserRelation> selectUserRelationByFamilyUserId(Long familyUserId);

    /**
     * 根据老人ID查询家属列表
     * 
     * @param elderUserId 老人ID
     * @return 家属列表
     */
    public List<SysUser> selectFamilyListByElderId(Long elderUserId);

    /**
     * 根据家属ID查询老人列表
     * 
     * @param familyId 家属ID
     * @return 老人列表
     */
    public List<SysUser> selectElderListByFamilyId(Long familyId);
} 